#define  _CRT_SECURE_NO_WARNINGS 1

#include "Heap.h"

void test01() {
	HP h1;
	HPInit(&h1);

	HPPush(&h1, 4);
	HPPush(&h1, 1);
	HPPush(&h1, 8);
	HPPush(&h1, 10);
	HPPush(&h1, 2);
	HPPush(&h1, 3);

	HPPop(&h1);
}

void test02() {
	HP h1;
	HPInit(&h1);

	HPPush(&h1, 4);
	HPPush(&h1, 1);
	HPPush(&h1, 8);
	HPPush(&h1, 10);
	HPPush(&h1, 2);
	HPPush(&h1, 3);

	printf("%d\n", HPTop(&h1));
	
	printf("%d\n", HPEmpty(&h1));
}

void test03() {
	HP h1;
	HPInit(&h1);

	HPPush(&h1, 4);
	HPPush(&h1, 1);
	HPPush(&h1, 8);
	HPPush(&h1, 10);
	HPPush(&h1, 2);
	HPPush(&h1, 3);

	for (int i = 0; i < h1.size; i++) {
		printf("%d ", h1.a[i]);
	}
}

void test04() {
	HP h1;
	HPInit(&h1);

	HPPush(&h1, 2);
	HPPush(&h1, 1);
	HPPush(&h1, 8);
	HPPush(&h1, 10);
	HPPush(&h1, 2);
	HPPush(&h1, 3);
	HPPush(&h1, 3);
	HPPush(&h1, 123);
	HPPush(&h1, 23);
	HPPush(&h1, 34);
	HPPush(&h1, 144);

	/*for (int i = 0; i < h1.size; i++) {
		printf("%d ", h1.a[i]);
	}?2






	printf("\n");
	HPPop(&h1);
	for (int i = 0; i < h1.size; i++) {
		printf("%d ", h1.a[i]);
	}

	printf("\n");
	HPPop(&h1);
	for (int i = 0; i < h1.size; i++) {
		printf("%d ", h1.a[i]);
	}*/


	printf("\n");

	int k = 0;
	scanf("%d", &k);

	for (int i = 0; i < k; i++) {
		printf("%d ", HPTop(&h1));
		//AdjustDown(h1.a, 0, h1.size);
		HPPop(&h1);
	}
	

}

void test05() {
	int a[] = {4,2,8,1,5,6,9,7};
	int n = sizeof(a) / sizeof(a[0]);

	HeapSort(a, n);

	for (int i = 0; i < n; i++) {
		printf("%d ",a[i]);
	}
}
int main() {
	//test01();
	//test02();
	//test03();
	//test04();
	test05();
	return 0;
}

